//(function($){
//	$.fn.extend({
//		mGrid : function(parametros){
//			digujarGrilla(parametros);
//		}
//	});
//	
//})(jQuery);

$.jgrid.extend({
    hola: function (rowid){
        //var totalRows = [];
        // enum all elements of the jQuery object
//        this.each(function(){
//            if (!this.grid) { return; }
//                // this is the DOM of the table
//                // we
//                var tr = this.rows.namedItem(rowid);
//                if (tr !== null) { // or if (tr !== null)
//                    totalRows.push(tr);
//                }
//        });
    	alert('hola');
        //return totalRows;
    }
});
var ui = {};

ui.comun = {};

ui.comun.grilla = {};

function dibujarGrilla(parametros){
	$.ajax({
		url: parametros.metaUrl +"/",
		dataType:'JSON',
		type:'POST',
		async:true,
//		data: inputDivJSON(divId),
		success: function(data){
			var colnames = data.colnames;
            var colmodel = data.colmodel;
            console.log(data.colnames);
            console.log(data.colmodel);
            var grilla = '#' + 'grilla' + parametros.entidad;
            var paginador =  '#paginador' + 'Grilla' + parametros.entidad;
            console.log(grilla);           
            $(grilla).jqGrid({
        		url : "listJson",
        		editurl : "update",
        		datatype : 'json',
        		async:false,
        		mtype : 'POST',
        		autowidth: true,
//        		width: 400,
        		colNames : colnames,
        		colModel : colmodel,
        		pager : paginador,
        		rowNum : 20,
        		rowList : [ 20, 30, 40, 50 ],
        		sortname : 'nombre',
        		sortorder : 'desc',
        		viewrecords : true,
        		gridview : true,
        		caption : parametros.entidad,
        	});

            // Paginador
            jQuery(grilla).jqGrid('navGrid', paginador, {
        		view : false,
        		edit : true,
        		add : true,
        		del : true,
        		search : false
        	},
        	{
        		editCaption: 'Editar'+ parametros.entidad,
        		closeAfterEdit: true,
        		modal: true,
        		reloadAfterSubmit: true,
        		addedrow: 'first',
//        		beforeShowForm : function(formid) {
//        			agregarBotonesACenso();
//        			//muestro edit oculto add
//        			jQuery("#paginadorNomenclatura .ui-icon-plus").css("display", "none");
//        			jQuery("#paginadorNomenclatura .ui-icon-pencil").css("display", "block");
//        		},
        		/****/
	        	afterShowForm : function(formid) {        		
	                $('[campoFecha]').datepicker({dateFormat : "dd/mm/yy"});	 
	        	},
	        	beforeShowForm : parametros.beforeShowFormEdit,
	        	/****/
        	}, // use default settings for edit
        	{
        		addCaption: 'Agregar ' + parametros.entidad,
        		url : "/SIG/" + parametros.entidad.toLowerCase() +"/save",
        		closeAfterAdd: true,
        		addedrow: 'first',
        		modal: true,
        		reloadAfterSubmit: true,
        		width: 380,
        		/****/
	        	afterShowForm : function(formid) {        		
	                $('[campoFecha]').datepicker({dateFormat : "dd/mm/yy"});	 
	        	},
	        	/****/
	   	        	
	        	beforeShowForm : parametros.beforeShowFormAdd,        	       		
        		zIndex: 900,
        	}, // use default settings for add
        	{
        		addCaption: 'Esta seguro que quiere eliminar el ' + parametros.entidad + ' seleccionado?',
        		url: "/SIG/" + parametros.entidad.toLowerCase() + "/delete"	
        	}, // delete instead that del:false we need this
        	{}
        	);
           
		},
		error: function(request, status, error) {
			console.log("Error: " + error);
		},
		complete: function(){
			
		}
		});
}



function dibujarGrillaPlanos(parametros){
	$.ajax({
		url: parametros.metaUrl +"/",
		dataType:'JSON',
		type:'POST',
		async:true,
//		data: inputDivJSON(divId),
		success: function(data){
			var colnames = data.colnames;
            var colmodel = data.colmodel;
            console.log(data.colnames);
            console.log(data.colmodel);
            var grilla = '#' + 'grilla' + parametros.entidad;
            var paginador =  '#paginador' + 'Grilla' + parametros.entidad;
            console.log(grilla);           
            $(grilla).jqGrid({
        		url : "listJson",
        		editurl : "update",
        		datatype : 'json',
        		async:false,
        		mtype : 'POST',
        		autowidth: true,
//        		width: 400,
        		colNames : colnames,
        		colModel : [
        		            {
        		            	name:'numeroPlano',
        		            	index:'numeroPlano', 
        		            	editable : true, 
        		            	width:70,
        		            },
        		            {
								name:'partido',
								index:'partido', 
								editable : true, 
								width:70,
								edittype : "select",
								editoptions :  {
									dataUrl : "/SIG/partido/listJson",
									dataEvents: [
										 { type: 'change',fn: function(e) {
										  
										 var ret = $.ajax({
											 type: $(this).attr('post'),//el método post o get del formulario
										     data: $(this).serialize(),//obtenemos todos los datos del formulario
										     url:'/SIG/barrio/listBarrios',
										     async:false
										 	}).responseText;
										 
										 $('#barrio').empty();
										 var str = ret.replace(/[\[\]\'&]+/g, '');
										 var s = str.split(',');
										 
										 for (var j = 0; j < s.length; j = j+2) {
											 $('#barrio').append(new Option(s[j],s[j+1] ));
										 }
										 
//										 $.each(s, function(index, item) {
//											 $('#barrio').append(new Option(item,index ));
//										 });
										 
										  
										 } }
										 ]
        		            	},
        		            },
        		            {
        						name : 'barrio',
        						editable : true,
        						edittype : "select",
        						editoptions : {
        							dataUrl : "/SIG/barrio/combolistJson"
        						},
        						editrules : {
        							number : true
        						},
        						index : 'barrio',
        						width : 100,
        						align : 'right'
        					},
        		            {
        		            	name: 'archivoDWG', 
        		            	index: 'archivoDWG', 
        		            	align: 'left', 
        		            	editable: true, 
        		            	edittype: 'file', 
        		            	editoptions: { enctype: "multipart/form-data" }, 
        		            	width: 160,
        		            	align: 'center',
        		            	search: false,
        		            },
        		            {
        		            	name:'nlegajoRegistroPropiedad', 
        		            	index:'nlegajoRegistroPropiedad', 
        		            	editable : true, 
        		            	width:100,
        		            },
        		            {
        		            	name : 'estado', 
        		            	index : 'estado', 
        		            	width : 90, 
        		            	editable : true, 
        		            	edittype : "select", 
        		            	editoptions : { dataUrl : "/SIG/plano/estadosPlano"},
        		            },
        		            {
        		            	name:'cantidadDeParcelasGeneradas', 
        		            	index:'cantidadDeParcelasGeneradas', 
        		            	editable : true, 
        		            	width:60,
        		            },
        		            {
        		            	name:'nroPlanoOrigen', 
        		            	index:'nroPlanoOrigen', 
        		            	editable : true, 
        		            	width:60,
        		            },
        		            {
        		            	name:'nroPlanoDefinitivo', 
        		            	index:'nroPlanoDefinitivo', 
        		            	editable : true, 
        		            	width:60,
        		            },
        		            {
        		            	name:'observaciones', 
        		            	index:'observaciones', 
        		            	editable : true, 
        		            	width:160,
        		            }
        		],
        		pager : paginador,
        		rowNum : 20,
        		rowList : [ 20, 30, 40, 50 ],
        		sortname : 'nombre',
        		sortorder : 'desc',
        		viewrecords : true,
        		gridview : true,
        		caption : parametros.entidad,
        	});

            // Paginador
            jQuery(grilla).jqGrid('navGrid', paginador, {
        		view : false,
        		edit : true,
        		add : true,
        		del : true,
        		search : false
        	},
        	{
        		editCaption: 'Editar'+ parametros.entidad,
        		closeAfterEdit: true,
        		modal: true,
        		reloadAfterSubmit: true,
        		addedrow: 'first',
//        		beforeShowForm : function(formid) {
//        			agregarBotonesACenso();
//        			//muestro edit oculto add
//        			jQuery("#paginadorNomenclatura .ui-icon-plus").css("display", "none");
//        			jQuery("#paginadorNomenclatura .ui-icon-pencil").css("display", "block");
//        		},
        		/****/
	        	afterShowForm : function(formid) {        		
	                $('[campoFecha]').datepicker({dateFormat : "dd/mm/yy"});	 
	        	},
	        	beforeShowForm : parametros.beforeShowFormEdit,
	        	/****/
        	}, // use default settings for edit
        	{
        		addCaption: 'Agregar ' + parametros.entidad,
        		url : "/SIG/" + parametros.entidad.toLowerCase() +"/save",
        		closeAfterAdd: true,
        		addedrow: 'first',
        		modal: true,
        		reloadAfterSubmit: true,
        		width: 380,
        		/****/
	        	afterShowForm : function(formid) {        		
	                $('[campoFecha]').datepicker({dateFormat : "dd/mm/yy"});	 
	        	},
	        	/****/
	   	        	
	        	beforeShowForm : parametros.beforeShowFormAdd,        	       		
        		zIndex: 900,
        	}, // use default settings for add
        	{
        		addCaption: 'Esta seguro que quiere eliminar el ' + parametros.entidad + ' seleccionado?',
        		url: "/SIG/" + parametros.entidad.toLowerCase() + "/delete"	
        	}, // delete instead that del:false we need this
        	{}
        	);
           
		},
		error: function(request, status, error) {
			console.log("Error: " + error);
		},
		complete: function(){
			
		}
		});
}

function colFecha(nombre){
	var nombreFecha = nombre;
	return {name : nombreFecha,
		editable : true,
		index : 'fecha',
		formatter : 'date',
		formatoptions : {
				newformat : 'd/m/Y'
		   },
		editoptions : {
			dataInit : function(el) {
				$(el).datepicker({
					dateFormat : 'dd/mm/yy'
				});
			}
		  }
		};
	
};


function colText(nombre){
	var nombreInput = nombre;
	return {
		name : nombreInput,
		editable : true,
		index : nombreInput,
		};
	
};


function colTextFile(nombre) {
	var nombreInput = nombre;
	return {
		name : nombreInput,
		editable : false,
		index : nombreInput,
	};
}

function colFile(nombre){
	
	return {
	name: nombre,
    index: nombre,
    align: 'left',
    editable: true,
    edittype: 'file',
    editoptions: {
        enctype: "multipart/form-data"
    },
    width: 160,
    align: 'center',
    search: false
	};
};

ui.comun.grilla.colFecha = {
		name : 'fecha',
		editable : true,
		index : 'fecha',
//		width : 90,
		formatter : 'date',
		formatoptions : {
				newformat : 'd/m/Y'
		   },
		editoptions : {
//			size : 20,
			dataInit : function(el) {
				$(el).datepicker({
					dateFormat : 'dd/mm/yy'
				});
			}
		  }
};

ui.comun.grilla.colPartido = {
		name : 'partido',
		editable : true,
		edittype : "select",
		editoptions : {
			dataUrl : "/SIG/partido/listJson",
			dataEvents: [
				 { type: 'change',fn: function(e) {
				  
				 var ret = $.ajax({
					 type: $(this).attr('post'),//el método post o get del formulario
				     data: $(this).serialize(),//obtenemos todos los datos del formulario
				     url:'/SIG/barrio/listBarrios',
				     async:false
				 	}).responseText;
				 
				 $('#barrio').empty();
				 var str = ret.replace(/[\[\]\'&]+/g, '');
				 var s = str.split(',');
				 
				 for (var j = 0; j < s.length; j = j+2) {
					 $('#barrio').append(new Option(s[j],s[j+1] ));
				 }
				 
//				 $.each(s, function(index, item) {
//					 $('#barrio').append(new Option(item,index ));
//				 });
				 
				  
				 } }
				 ]
		},
		editrules : {
			number : true
		},
		index : 'partido',
//		width : 100,
		align : 'right'
   };

ui.comun.grilla.colBarrio = {
		name : 'barrio',
		editable : true,
		edittype : "select",
		editoptions : {
			dataUrl : "/SIG/barrio/combolistJson"
		},
		
		editrules : {
			number : true
		},
		index : 'barrio',
		align : 'right'
};

ui.comun.grilla.colExpediente = {
		name : 'expediente',
		index : 'expediente',
		width : 90,
		editable : true,
		editoptions : {
			dataUrl : "/SIG/expediente/listJson"
	   }	
};

ui.comun.grilla.colEncuadreLegal = {
		name : 'tipoEncuadreLegal',
		editable : true,
		edittype : "select",
		editoptions : {
			useDefValues: true,
			defaultValue: "",
			dataUrl : "/SIG/tipoEncuadreLegal/listJson"
		},
		editrules : {
			number : true
		},
		index : 'partido',
		align : 'right'	
};

ui.comun.grilla.colExpropiaciones = {
		name : 'expropiaciones',
		index : 'expropiaciones',
		width : 90,
		editable : true,	
};

ui.comun.grilla.colTipoSolicitud = {
		name : 'tipoSolicitud',
		index : 'tipoSolicitud',
		width : 90,
		editable : true,
		edittype : "select",
		editoptions : {
			dataUrl : "/SIG/tipoSolicitud/listJson"
		}	
};

ui.comun.grilla.colTipoTramiteIIUU = {
		name : 'tipoTramite',
		index : 'tipoTramite',
		width : 90,
		editable : true,
		edittype : "select",
		editoptions : {
			dataUrl : "/SIG/tipoTramiteIIUU/tipoTramite"
		}	
};
	
ui.comun.grilla.colEstadoTramite = {
		name : 'estadoTramite',
		index : 'estadoTramite',
		width : 90,
		editable : true,
		edittype : "select",
		editoptions : {
			dataUrl : "/SIG/estadoTramiteIIUU/estadoTramite"
		}	
};

ui.comun.grilla.colProfACargo = {
		name : 'profesionalACargo',
		index : 'profesionalACargo',
		width : 90,
		editable : true,
		edittype : "select",
		editoptions : {
			dataUrl : "/SIG/solicitud/profesionales"
		}
};

ui.comun.grilla.colTexto = {
		name : 'texto',
		index : 'texto',
		width : 90,
		editable : true
};

ui.comun.grilla.colOrigenes = {
		name : 'origen',
		index : 'origen',
		width : 90,
		editable : true,
};

ui.comun.grilla.colMotivos = {
		name : 'motivo',
		index : 'motivo',
		width : 90,
		editable : true,
		edittype : "text",
};

ui.comun.grilla.colEstadosDeConsolidacion = {
		name : 'estadoDeConsolidacion',
		index : 'estadoDeConsolidacion',
		width : 90,
		editable : true,
		edittype : "text",
};


$(function() {
    $("input[name$='datepicker']").datepicker();
    
    
  });

ui.comun.grilla.colOrigen = {
		name : 'origen',
		editable : true,
		edittype : "select",
		editoptions : {
			dataUrl : "/SIG/origenIURegularizacion/listJson"
		},
		editrules : {
			number : true
		},
		index : 'origen',
//		width : 100,
		align : 'right'
   };

ui.comun.grilla.colMotivo = {
		name : 'motivo',
		editable : true,
		edittype : "select",
		editoptions : {
			dataUrl : "/SIG/motivoIURegularizacion/listJson"
		},
		editrules : {
			number : true
		},
		index : 'motivo',
//		width : 100,
		align : 'right'
   };

ui.comun.grilla.colEstadoDeConsolidacion = {
		name : 'estadoDeConsolidacion',
		editable : true,
		edittype : "select",
		editoptions : {
			dataUrl : "/SIG/EstadoDeConsolidacion/listJson"
		},
		editrules : {
			number : true
		},
		index : 'estadoDeConsolidacion',
//		width : 100,
		align : 'right'
   };

ui.comun.grilla.comboEstadoDeConsolidacion = {
		name : 'estadoDeConsolidacion',
		editable : true,
		edittype : "select",
		editoptions : {
			dataUrl : "/SIG/estadoDeConsolidacion/comboJson"
		},
		editrules : {
			number : true
		},
		index : 'estadoDeConsolidacion',
//		width : 100,
		align : 'right'
   };